body, html {
    margin: 0;
}

body {
    background: url("../images/background.jpg");
    background-position: center center; /* Background image is centered vertically and horizontally at all times */
    background-attachment: fixed; /* Background image is fixed in the viewport so that it doesn't move when the content's height is greater than the image's height */
    background-repeat: no-repeat;
    background-size: cover; /* This is what makes the background image rescale based on the container's size */
}

#content-wrapper {
    min-height: 800px;
    margin: 0px;
    padding: 0px;
    display: -webkit-flex;
    display:         flex;
    -webkit-flex-flow: row;
            flex-flow: row;
    height: calc(100vh - 144px);
 }
 
#content-wrapper > #content {
    margin: 0 15% 0 15%;
    padding: 10% 5px;
    background: rgba(255, 255, 255, 0.9);
    -webkit-flex: 3 1 60%;
            flex: 3 1 60%;
    -webkit-order: 0;
            order: 0;
    display: flex;
    justify-content: center;
/*    align-items: center;*/
 }
 
header, footer {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 5px;
    min-height: 20px;
    background: #2c3e50;
    color: white;
}
 
/* Too narrow to support three columns */
@media all and (max-width: 640px) {
    #content-wrapper, #page {
        -webkit-flex-flow: column;
                flex-flow: column;
                flex-direction: column;
    }
    
    #content-wrapper {
        min-height: 490px;
    }

    #content-wrapper > #content {
        /* Return them to document order */
        -webkit-order: 0;
                order: 0;
        margin: 0 5% 0 5%;
        padding: 40% 5px;
    }
  
    #header {
        min-height: 50px;
        max-height: 50px;
    }
    
    #footer {
        min-height: 20px;
        max-height: 20px;
    }
}